spppan.body.sh
 1	cat << HTML
 2	
 3	<style>
 4	pre br {display:none}
 5	pre p {margin:0;display:inline}
 6	</style>
 7	<header><h1>spppan</h1>
 8	<p>Un parseur pour passer les premiers «P» de «P(re)P(ost)P(rint)» en anti-oblique et oblique</p>
 9	<br>
10	<details open>
11		<summary>spppan.css <i>exemple de feuille de style à appliquer</i></summary><pre>
12	HTML
13	cat -n << % | sed -E '
14		s	<	\<		g
15		s	>	\>		g
16		s	^(    ..\t)(#.*)	\1<span style="opacity:.5">\2</span>	g
17		s	^    (..)	<span style="opacity:.5">\1</span>		g
18		'
19	<style>
20		#ppp-pre, #ppp-post {display:inline-block;}
21		#ppp-pre  {transform:skew(15deg);}  /* ╲P╲  */
22		#ppp-post {transform:skew(-15deg);} /*  ╱P╱ */
23	</style>
24	%
25	cat << HTML
26	</pre></details><details open>
27		<summary>spppan.js <i>version en javascript, pour pencher à la volée, dans un navigateur</i></summary><pre>
28	HTML
29	cat -n << % | sed -E '
30		s	<	\<		g
31		s	>	\>		g
32		s	^(    ..\t)(#.*)	\1<span style="opacity:.5">\2</span>	g
33		s	^    (..)	<span style="opacity:.5">\1</span>		g
34		'
35	<script src="/js/filter.js"></script>
36	<script>
37	function spppan(text,deg) {
38		return text.replace(
39			/(p|pre)(p|post)(p|print)/ig,
40			\`<span id="ppp-pre">\$1</span><span id="ppp-post">\$2</span>\$3\`
41		);
42	}
43	</script>
44	%
45	cat << HTML
46	</pre>
47	</details>
48	HTML
49	
50	cat << HTML
51	<details open>
52		<summary>spppan.sh <i>version en sed contenue dans un script shell, pour pencher la source html en amont</i></summary><pre>
53	HTML
54	
55	cat -n << % | sed -E '
56		s	<	\<		g
57		s	>	\>		g
58		s	^(    ..\t)(#.*)	\1<span style="opacity:.5">\2</span>	g
59		s	^    (..)	<span style="opacity:.5">\1</span>		g
60		'
61	#!/usr/bin/env sh
62	
63	# décembre 2024
64	
65	# Une commande sed qui cherche dans un document html les occurences de
66	# prepostprint et de ppp avec ou sans majuscules (gI). Elle insère p(re) et
67	# p(ost) dans des span aux id «ppp-pre» (anti-oblique) et «ppp-post» (oblique).
68	
69	# PPPPPPPPPPPPpp             PPPPPPPPPPPPpp    PPPPPPPPPPPPPPp
70	# ppPPPPPPPPPPPPPPp          pPPPPPPPPPPPPPP    pPPPPPPPPPPPPPP
71	#    pPPp      ppPPPp        pPPP       pPPPp    PPP        pPPP
72	#     PPPp        PPPp       PPP         PPP     PPPp        PPP
73	#     pPPP        PPPP      PPPp      ppPPPp     PPP       pPPPP
74	#      pPPPPPPPPPPPPPp     pPPPPPPPPPPPPPp       PPPPPPPPPPPPPp
75	#       PPPPPPPPPPPpp     pPPPPPPPPPPPpp         PPPPPPPPPPpp
76	#        PPP              PPPp                   PPP
77	#        pPPP            PPPp                    PPP
78	#         pPPp          pPPP                     PPP
79	#         pPPPpp      ppPPPp                   pPPPPPp
80	#         PPPPPPP    PPPPPPP                   PPPPPPP
81	
82	sed -E '
83	s	(p|pre)(p|post)(p|print)\\
84		<span id="ppp-pre">\1</span><span id="ppp-post">\2</span>\3\\
85		gI
86	'
87	
88	# exemple : cat [FICHIER].html | ./pppspan.sh
89	%
90	cat << HTML
91	</pre>
92	</details>
93	HTML
94	

spppan

Un parseur pour passer les premiers «P» de «P(re)P(ost)P(rint)» en anti-oblique et oblique


spppan.css exemple de feuille de style à appliquer
 1	<style>
 2		#ppp-pre, #ppp-post {display:inline-block;}
 3		#ppp-pre  {transform:skew(15deg);}  /* ╲P╲  */
 4		#ppp-post {transform:skew(-15deg);} /*  ╱P╱ */
 5	</style>
spppan.js version en javascript, pour pencher à la volée, dans un navigateur
 1	<script src="/js/filter.js"></script>
 2	<script>
 3	function spppan(text,deg) {
 4		return text.replace(
 5			/(p|pre)(p|post)(p|print)/ig,
 6			`<span id="ppp-pre">$1</span><span id="ppp-post">$2</span>$3`
 7		);
 8	}
 9	</script>
spppan.sh version en sed contenue dans un script shell, pour pencher la source html en amont
 1	#!/usr/bin/env sh
 2	
 3	# décembre 2024
 4	
 5	# Une commande sed qui cherche dans un document html les occurences de
 6	# prepostprint et de ppp avec ou sans majuscules (gI). Elle insère p(re) et
 7	# p(ost) dans des span aux id «ppp-pre» (anti-oblique) et «ppp-post» (oblique).
 8	
 9	# PPPPPPPPPPPPpp             PPPPPPPPPPPPpp    PPPPPPPPPPPPPPp
10	# ppPPPPPPPPPPPPPPp          pPPPPPPPPPPPPPP    pPPPPPPPPPPPPPP
11	#    pPPp      ppPPPp        pPPP       pPPPp    PPP        pPPP
12	#     PPPp        PPPp       PPP         PPP     PPPp        PPP
13	#     pPPP        PPPP      PPPp      ppPPPp     PPP       pPPPP
14	#      pPPPPPPPPPPPPPp     pPPPPPPPPPPPPPp       PPPPPPPPPPPPPp
15	#       PPPPPPPPPPPpp     pPPPPPPPPPPPpp         PPPPPPPPPPpp
16	#        PPP              PPPp                   PPP
17	#        pPPP            PPPp                    PPP
18	#         pPPp          pPPP                     PPP
19	#         pPPPpp      ppPPPp                   pPPPPPp
20	#         PPPPPPP    PPPPPPP                   PPPPPPP
21	
22	sed -E '
23	s	(p|pre)(p|post)(p|print)\
24		<span id="ppp-pre">\1</span><span id="ppp-post">\2</span>\3\
25		gI
26	'
27	
28	# exemple : cat [FICHIER].html | ./pppspan.sh