SourceBlock-Talk
back to SourceBlock
Please leave the latest message at the top.
Please find patch for newer php:
It is possible to fix by using a different approach.
TEST-BED: Pmwiki Version: 2.2.145 Server: nginx-1.22.0 Php: php-fpm-8.0.19 Os: AlpineLinux(v3.16)
Attach: SourceBlock-20230125a.patch.txtΔ
VKrishn
Sourceblock works great for me. However I really need the source displayed in a larger font, it is simply too tiny for my aged eyes to see properly.
Encapsulating the source block in wiki markup \'+ has no effect.
Is there an easy way to accomplish it, preferably by setting a parameter once somewhere in the source to make the change global?
Yes, you can create a file pub/css/local.css (if it doesn't already exist) and add such a line in it:
.sourceblocktext div { font-size: 110%; }
(Note that the above block uses a different syntax highlighter, see WikiStyles#highlight.) --Petko April 14, 2021, at 12:19 PM
The demo looks great, thank you for your quick reply. The source file still is not using markup_e in about half the file so I'm sure it will error; Oddly enough, half of it is. Since this is the talk page, I am hoping the maintainer keeps up with it also. I have edited the half dozen lines that are still using the old markup so that I can test it. But, if my local corrections work I still cannot update the source here. - Marcus, 20180416
SourceBlock project page is dumping compliance errors and unreadable. Source code php file has to be found by hacking the url and its source has deprecated lines. All needs fixing. - Marcus, 20180416
Thanks, demo updated. --Petko April 16, 2018, at 12:09 PM
Seems this recipe is not php 5.5 compliant, to me it looks the code below (and some other lines in the latest version) suffers from the preg_replace /e problem?
Markup('sourceblock', '>markupend', "/\\(:source(\\s+.*?)?\\s*:\\)[^\\S\n]*\\[([=@])(.*?)\\2\\]/sei", "SourceBlockMarkup(\$pagename, PSS('$1'), PSS('$3'))"); Markup('sourceblockend', '>sourceblock', "/\\(:source(\\s+.*?)?\\s*:\\)[^\\S\n]*\n(.*?)\\(:sourcee?nd:\\)/sei", "SourceBlockMarkup(\$pagename, PSS('$1'), PSS('$2'))"); Markup('codeblock', '>markupend', "/\\(:code(\\s+.*?)?\\s*:\\)[^\\S\n]*\\[([=@])(.*?)\\2\\]/sei", "CodeBlockMarkup(\$pagename, PSS('$1'), PSS('$3'))"); Markup('codeblockend', '>codeblock', "/\\(:code(\\s+.*?)?\\s*:\\)[^\\S\n]*\n(.*?)\\(:codee?nd:\\)/sei", "CodeBlockMarkup(\$pagename, PSS('$1'), PSS('$2'))"); }
Johan Bengtsson /2018-03-02
- For the record, I didn't update this recipe because I was waiting for the author of the underlying tool (GeSHi) to do it either for PHP 7.2 (which is still not the case). --Dfaure March 02, 2018, at 08:37 AM
I have problems with PHP7 (Ubuntu 16.04), if I activate sourceblock, I can't use my wiki at all, everything stays empty. Downgrade to php5 and the wiki works again. Can anybody help me?
Problem fixed: After updating PmWiki from 2.2.68 to 2.2.94 sourceblock works again :-)
PageTextVariables within a (:source:)...(:sourceend:) region are replaced-on-save, while PageTextVariables in preformatted markup [@...@] region are not.
UPDATE July 11, 2014 the use of
MichaelPaulukonis July 10, 2014, at 10:07 PM
I'm getting the odd scenario where the getcode
link is off-by-one. I have one sourceblock markup on the page, it renders, but the link is for num=2
-- which, predictably, displays an empty page when clicked.
If I manually change the URL to num=1
the code displays as expected.
This was noted by another user some years ago:
MichaelPaulukonis June 30, 2014, at 10:24 AM
UPDATE July 11, 2014 I believe it's a wiki-config issue, because another (non-farm) wiki running on the same host, same account does not have this problem. I will check for recipe interference....
UPDATE 2014.08.21 and 08.25 It's BlogIt. When I disable BlogIt, or use sourceblock on non-blog pages, the num=n
parameters are correct. When BlogIt is enabled, the num=n
params are off on all blog-pages. If one source-block is present, the first block is off-by-one (eg, 2). If two source-blocks are present, the first block is off-by-two, and the others proceed in sequence (eg, 3,4). If three source-blocks are present, the first is off-by-three, and the others proceed in sequence (eg, 4,5,6). So it's an off-byn
issue, where n
is the number of source-blocks present.
This is probably an issue with BlogIt, and has been brought up in greater detail @ BlogIt-Talk#offbyn.
Change Request (to make code work with Precode):
Any other similar options for setting $geshi->set_header_type(GESHI_HEADER_??); should work. 165c165,167 < $geshi->set_header_type(GESHI_HEADER_DIV); --- > if(@$opt['headw']==='0') > $geshi->set_header_type(GESHI_HEADER_NONE); > else $geshi->set_header_type(GESHI_HEADER_DIV);
VKrishn July 23, 2012, at 02:27 AM
-headw
--Dfaure August 26, 2014, at 04:59 AM
Change Request:
I propose a change in sourceblock.php to make the supported languages listing more usable by sorting it. Here is the diff output:
(Note this is against version 2009-01-27.)
- instead of building only an array, use $out to hold the strings generated.
243c243 < $infos = array("Geshi Version: " . GESHI_VERSION); --- > $out = "Geshi Version: " . GESHI_VERSION; 245c245 < $infos[] = "\n||border=1\n||! lang ||! full name ||"; --- > $out .= "\n||border=1\n||! lang ||! full name ||\n";
- use $lang as the index into the $infos array so it can later be sorted
253c253 < $infos[] = "||" . $lang . "
||" . $language_data['LANG_NAME'] . " ||"; --- > $infos[$lang] = "||" . $lang . "
||" . $language_data['LANG_NAME'] . " ||"; 255c255 < $infos[] = "*" . $lang . "
"; --- > $infos[$lang] = "*" . $lang . "
";
- sorts $infos by it's keys, and implode into $out
260c260,261 < $out = implode("\n", $infos) . "\n"; --- > ksort($infos); > $out .= implode("\n", $infos) . "\n";
As you can see, it builds the precursors to the actual language list in the $out variable, and $infos just contains the rows of the table, using $lang as the index into the $infos array. Before joining into $out, the $infos array is key sorted. In addition, if there are wiki words in the language list, they are not enabled. --tamouse November 09, 2011, at 08:13 AM
Question: I found a bug, not sure where else to put it, but this will highlight the problem, if placed on a wiki with the SourceBlock recipe installed.
If highlighting is used on any source block, the last instance of that same language source block type on the same page must also use highlighting
- Eliminating the first occurrence of either language block type will cause no highlighting to occur.
- Eliminating the last occurrence of either language block type (or adding highlighting to the last occurrence) will cause highlighting to appear correctly.
<!--This Should be highlighted --><!--This
Should NOT be highlighted -->
System.out.println("highlighted");System.out.println("not highlighted");
Question: how can I place ~~~~ (4 times the ~) in a codebox? Astrid May 31, 2011, at 10:15 AM
Question: Anyone got SourceBlock to work with GeSHI 1.0.8.10? I just get a blank trying to use the new version, but 1.0.8.8 works fine. Daniel Andersson 2011-04-24 08:54:47 UTC
So SourceBlock needs to be remade as well I guess? Daniel Andersson 2011-04-27 08:41:55 UTC
Hi I've just done a fresh install, apart from some apache rewrites its all pretty standard so far. I'm having the strange issue that when I attempt to post a script the GetCode link has the wrong num=X, should start at 1 but they're starting at 2. Even in Site/Side bar... interestingly though num=1 works on Main/HomePage..
I encountered the problem that the Link GetCode is no longer written as GetCode but now with [$[Get Code]]
...
-Markus October 12 2009
SDV($SourceBlockLinkText, "Get Code");
before the include_once
line. This breaks the automatic localisation. Maxim? October 31, 2009, at 07:48 AM
Question: Is there an easy way to add a little expand/collapse button to expand or collapse the source code block. I have code that has 100s of line of code and will be helpful. Thanks. -Shah April 23, 2009 at 02:18 PM
Nevermind - It was quite easy to implement, I just used Toggle - Shah
Regarding leading whitespace trimming: for many languages, the whitespace is significant and the first line might contain leading whitespace. If I change line 147 to restrict the trim characters:
if(!@in_array('trim', (array)$opt['-'])) $block = trim($block, "\n\r");
it behaves as I'd like - it still trims line breaks so you don't have to cram the first line after the [@
, so the wikisource is more readable. How about adding a variable in config.php to control this? Maxim? April 03, 2009, at 05:15 AM
SourceBlock is very nice and works well but I find that some of the colors really hard to read. I assume that id=ID
, class=CLASS
can be used in some way to modify the colors ... but how should they be used, I couldn't find an example of how to use it. j 2009-04-01
- The recipe configures Geshi to work using classes.
- The (:source lang=LANG class=MYCLASS:) ... markup result will (by default) be encapsulated into the following <div> hierarchy:
<div class='sourceblock MYCLASS' id='...'> <div class='sourceblocktext'>COLORIZED SOURCE CODE HERE</div> <div class='sourceblocklink'>...</div> </div>
.MYCLASS .LANG .kw1 { ... }
Leading whitespace on the first line is lost.
-trim
option to prevent this behavior. --Dfaure April 02, 2009, at 06:21 AM
What is the recommended way of changing colors?
id=...
or class=...
parameters associated with your own stylesheet definition, or alter the $GeshStyles
global variable --Dfaure June 11, 2008, at 07:54 AM
I like SourceBlock very much and without external files it works for me like a charm. But I just can't get external files running.
I installed LinkedResourceExtras and as an "enduser" didn't configure anything else - although this feels a little wrong because the receipe for LinkedResourceExtras says to include_once('cookbook/extlinkedres.php');
which I couldn't find in sourceblock.php
. Could you please give a complete example for an external file, e.g. http://www.gnu.org/licenses/fdl.txt?
I tried [EDIT: deleted the wrong ones]
(:source http://www.gnu.org/licenses/fdl.txt :) |
(:source http://www.gnu.org/licenses/fdl.txt :) |
and only get empty code blocks. Thanks for any help! Frank - October 12, 2007, 7:20 PM
(:source FILE_SPECIFICATION PARAMS:)
.--Dfaure October 14, 2007, at 04:40 AM
I get an error when I try to use lang=html for some reason. If I just sub lang=php, it will highlight html, but I'm confused, since html is in the list of languages at geshi. As an example, here http://baldwinsoftware.com/wiki/pmwiki.php?n=Public.Penwell1 I am now using lang=php, because when I try to use lang=html, I get
GeSHi Error: GeSHi could not find the language html (using path /home/content/29/5132729/html/wiki/cookbook/geshi/geshi/) (code 2)
tonybaldwin June 03, 2011, at 08:15 AM
html4strict
for html formatting. So you need to do the following:
(:source lang=html4strict:) <html></html> (:sourceend:) |
<html></html> |
Talk page for the SourceBlock recipe (users).